using System;
using System.Collections.Generic;
using System.Text;
using BussinessLogicTecnoPez.Produccion.Producto;

namespace BussinessLogicTecnoPez.AtencionCliente.Pedido
{
    [Serializable]
    [DBTable("DETALLEREMITO")]
    public class ItemDetalleRemito : EntityBase<ItemDetalleRemito>
    {
        private Producto objProducto;
        private decimal cantidad;
        private decimal precio;

        public ItemDetalleRemito()
        {
            this.objProducto = null;
            this.cantidad = 0;
            this.precio = 0;
        }

        public ItemDetalleRemito(Producto objProducto, decimal cantidad, decimal precio)
        {
            this.objProducto = objProducto;
            this.cantidad = cantidad;
            this.precio = precio;
        }

        public ItemDetalleRemito(ItemDetallePedido objItem)
        {
            if (objItem == null)
                throw new BussinessLogicTecnoPezException("El item es nulo");

            this.objProducto = objItem.Producto;
            this.cantidad = objItem.Cantidad;
            this.precio = objItem.Precio;
        }

        [FriendlyName("Producto", true)]
        [DBField("IDPRODUCTO", true, false, true, "IDPRODUCTO")]
        public Producto Producto
        {
            get { return objProducto; }
            set { objProducto = value; }
        }

        /// <summary>
        /// Utilizada para el manejo de la grilla
        /// </summary>
        [FriendlyName("IdProducto", false)]
        public int IdProducto
        {
            get
            {
                if (this.Producto != null)
                    return this.Producto.IdProducto;
                else
                    return 0;
            }
        }

        [FriendlyName("Cantidad", true)]
        [DBField("CANTIDAD", false, false)]
        public decimal Cantidad
        {
            get { return cantidad; }
            set { cantidad = value; }
        }

        [FriendlyName("Precio", true)]
        [DBField("PRECIO", false, false)]
        public decimal Precio
        {
            get { return precio; }
            set { precio = value; }
        }
    }
}
